In automatic call-distribution (ACD) systems, calls incoming to a call center are answered and handled by a plurality of agents. The ACD system automatically distributes and connects incoming calls to whatever agents are suited to handling the calls and are free, that is, not handling other calls at the moment.
It often happens that the call center becomes overloaded by calls, so that no suitable agents are available to handle calls at the moment that the calls come in. The calls then back up. They are placed in different queues based upon some preestablished criteria, and are placed in each queue in the order of their arrival and/or priority. There they await suitable agents becoming free and available to service them. Unfortunately, in such a situation, callers often abandon their calls without waiting for their calls to be serviced. This normally results in loss of goodwill, business, and cost of the call, for the called party. Information on how long either an individual or an average caller has to wait to have his or her call serviced is crucial information for the service provider. It is often the most important factor for deciding how to treat the call, and thus serves as a crucial tool for customizing customer service. For example, it has been found that rates of call abandonment of backed-up calls are reduced by giving the callers whose calls are being enqueued an indication of how long they will have to wait to have their calls serviced. Estimated waiting time is also an important measure of the service provider's performance.
Numerous techniques have been developed over time to estimate a call's wait-time in queue. One estimation technique uses the average wait-time to answer of some number of previous calls that had been placed in the queue. Another estimation technique uses the wait time of the oldest call in the queue. Yet another estimation technique uses, as the wait-time estimate, the number of calls in the queue multiplied by the average time it takes an agent to handle a call, divided by the number of agents available to handle the calls. While giving a general prediction of a call's wait time in queue, none of these estimation techniques provide an acceptable level of accuracy, due to their failure to take into account the full feature functionality of the ACD system. Examples of ACD features that affect the expected wait time include priority queuing, multiple split/skill queuing, numbers of agents in multiple splits/skills, interflow, intraflow, and agent login/logout. Rates of call abandonment also significantly affect the expected wait time. Also, the known estimation techniques often give the expected wait-time indication only when the call is first placed in the queue, and do not permit re-computation and re-indication of the expected wait time after the call has been in queue for some time. A reason for these limitations is that expected wait-time computation uses up precious computing power, and the existing wait-time computation schemes have been complex and computationally inefficient so that they have used too much of that precious resource.